<!DOCTYPE HTML PUBLIC "-//ORA//DTD CD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>[Chapter 6] 6.4 Expression Statements</TITLE>
<META NAME="author" CONTENT="Mark Grand">
<META NAME="date" CONTENT="Thu Jul 31 13:14:27 1997">
<META NAME="form" CONTENT="html">
<META NAME="metadata" CONTENT="dublincore.0.1">
<META NAME="objecttype" CONTENT="book part">
<META NAME="otheragent" CONTENT="gmat dbtohtml">
<META NAME="publisher" CONTENT="O'Reilly &amp; Associates, Inc.">
<META NAME="source" CONTENT="SGML">
<META NAME="subject" CONTENT="java">
<META NAME="title" CONTENT="Java Language Reference">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
</HEAD>
<body vlink="#551a8b" alink="#ff0000" text="#000000" bgcolor="#FFFFFF" link="#0000ee">

<DIV CLASS=htmlnav>
<H1><a href='index.htm'><IMG SRC="gifs/smbanner.gif"
     ALT="Java Language Reference" border=0></a></H1>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch06_03.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><B><FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1">Chapter 6<br>Statements and Control Structures</FONT></B></TD>
<td width=172 align=right valign=top><A HREF="ch06_05.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
</table>

&nbsp;
<hr align=left width=515>
</DIV>
<DIV CLASS=sect1>
<h2 CLASS=sect1><A CLASS="TITLE" NAME="JLR2-CH-6-SECT-4">6.4 Expression Statements</A></h2>

<P CLASS=para>
Expression statements
are the most common statements in Java. An expression statement
consists of an expression that is executed for its side effects.
Only certain kinds of expressions can be used in an expression statement:


<p>
<img align=middle src="./figs/jlr0607.gif" alt="[Graphic: Figure from the text]" width=424 height=148 border=0>


<p>
<img align=middle src="./figs/jlr0608.gif" alt="[Graphic: Figure from the text]" width=424 height=49 border=0>

<P CLASS=para>
Here are some examples of expression statements:

<DIV CLASS=screen>
<P>
<PRE>
x = 3*y;
foo(x);
x++;
--y;
new zombie();
</PRE>
</DIV>

<P CLASS=para>
Notice that a top-level expression
is an expression that has a side effect or calls a method. An assignment
expression has the side effect of altering the value of a variable
or array element. A statement expression that consists of an increment
or decrement operator has the side effect of incrementing or decrementing
the contents of a variable or an array element. A method call expression
has the side effect of calling a method. If the method returns a
result, the result is discarded. A special variant of <I CLASS=emphasis>MethodCallExpression</I>,
called <I CLASS=emphasis>ExplicitConstructorCallStatement</I>, allows
a constructor to be called explicitly as the first statement of
another constructor. An allocation expression creates an object
and has the side effect of calling its constructor.

<P CLASS=para>
An expression statement is evaluated fully, including its side effects,
before the next statement is executed.[2]

<blockquote class=footnote>
<P CLASS=para>[2] 
A Java compiler
can produce code that follows a different order of evaluation, provided
that the code produces the same result as code that does follow
the specified order of evaluation.
</blockquote>
<P CLASS=para>
<b>References</b>
<A HREF="ch04_02.htm#JLR2-CH-4-SECT-2">Allocation Expressions</A>;
<A HREF="ch04_13.htm#JLR2-CH-4-SECT-13">Assignment Operators</A>;
<A HREF="ch05_04.htm#JLR2-CH-5-SECT-4.4.3.6">Constructor implementation</A>;
<A HREF="ch04_01.htm#JLR2-CH-4-SECT-1.8">Method Call Expression</A>;
<A HREF="ch04_01.htm#JLR2-CH-4-SECT-1">Primary Expressions</A>

</DIV>


<DIV CLASS=htmlnav>

<P>
<HR align=left width=515>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch06_03.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><a href="index.htm"><img src='gifs/txthome.gif' border=0 alt='Home'></a></td>
<td width=172 align=right valign=top><A HREF="ch06_05.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
<tr>
<td width=172 align=left valign=top>The Empty Statement</td>
<td width=171 align=center valign=top><a href="index/idx_0.htm"><img src='gifs/index.gif' alt='Book Index' border=0></a></td>
<td width=172 align=right valign=top>The if Statement</td>
</tr>
</table>
<hr align=left width=515>

<IMG SRC="gifs/smnavbar.gif" USEMAP="#map" BORDER=0> 
<MAP NAME="map"> 
<AREA SHAPE=RECT COORDS="0,0,108,15" HREF="../javanut/index.htm"
alt="Java in a Nutshell"> 
<AREA SHAPE=RECT COORDS="109,0,200,15" HREF="../langref/index.htm" 
alt="Java Language Reference"> 
<AREA SHAPE=RECT COORDS="203,0,290,15" HREF="../awt/index.htm" 
alt="Java AWT"> 
<AREA SHAPE=RECT COORDS="291,0,419,15" HREF="../fclass/index.htm" 
alt="Java Fundamental Classes"> 
<AREA SHAPE=RECT COORDS="421,0,514,15" HREF="../exp/index.htm" 
alt="Exploring Java"> 
</MAP>
</DIV>

</BODY>
</HTML>
